<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 翻转数组
      // 原数据['张三','李四','王五','孙六'] => ['孙六','王五','李四','张三']
      // const arr=['张三','李四','王五','孙六']
      // const newArr=arr.reverse()
      // console.log(newArr);

      // function getSum(a,b){
      //   let res=[]
      //    for(let i=0;i<a.length;i++){
      //     for(let j=0;j<b.length;j++){
      //    if(a[j]===b[i]){
      //     a[j]-=1
      //       res.push(a[i])
      //    }
      //     }
      //    }
      //    console.log(res);
      // }
      // function getSum(a,b){
      //            let sum=[]
      //            for(let i=0;i<a.length;i++){
      //              for(let j=0;j<b.length;j++)
      //              if(a[j]===b[i]){
      //               a[j]-=1
      //               sum.push(a[i])
      //              }
      //            }
      //            console.log(sum);
      //        }

      //   let arr = ["张瑞淑", "徐海涛", "谢岗岗", "薛鹏", "魏明杨", "党婷", "熊飞", "郑翠翠", "李航卫", "屈涛", "汪孝双", "代攀飞", "武志钰", "王亚龙", "周芙榕", "李涛", "郝颖", "文冲洋", "王旭拯", "胡佳豪", "寇晓丽", "马晓晗","王思聪", "张绿", "李德", "郑萍", "张凯", "张嘉成", "葛云侠", "杨磊", "任变", "景德", "高卷林", "刘益凡", "赵娜", "陈章鸣", "张荣召", "赵凯旋", "程倩倩", "脱朝平", "刘吉利", "郭苗苗", "马建峰", "潘瑞", "闫翔", "马晨", "李轩轩", "黄红梅", "刘书彬", "罗强", "刘东","王可可" , "陈泽文", "李嘉琪", "段佳琦", "黄燕", "邱淑鸿", "宋翔宇", "王波", "樊琳", "王兆国", "许成", "李兴"];

      //  let currentArr = ["张瑞淑", "徐海涛", "谢岗岗", "薛鹏", "魏明杨", "党婷", "熊飞", "郑翠翠", "李航卫", "屈涛", "汪孝双", "代攀飞", "武志钰", "王亚龙", "周芙榕", "李涛", "郝颖", "文冲洋", "王旭拯", "胡佳豪", "寇晓丽", "马晓晗", "张绿", "李德","郑萍", "张凯", "张嘉成", "葛云侠", "杨磊", "任变", "景德", "高卷林", "刘益凡", "赵娜", "陈章鸣", "张荣召", "赵凯旋", "程倩倩", "脱朝平", "刘吉利", "郭苗苗", "马建峰", "潘瑞", "闫翔", "马晨", "李轩轩", "黄红梅", "刘书彬", "罗强", "刘东", "陈泽文", "李嘉琪", "段佳琦", "黄燕", "邱淑鸿", "宋翔宇", "王波", "樊琳", "王兆国", "许成", "李兴"];
      //  getSum(arr,currentArr)
      //  console.log( getSum(arr,currentArr));

      // 根据学生的score  找出分数最高的学生，在控制台输出这个学生 比如：{name: '李四',score: 100, sex: '男'} 李四分数最高 分数99
      // arr 为学生列表
      // const arr = [
      //   { name: '张三', score: 99, sex: '男' },
      //   { name: '李四', score: 100, sex: '男' },
      //   { name: '王武', score: 77, sex: '女' },
      //   { name: '张红', score: 68, sex: '男' },
      // ]

      // const res = arr.sort((a, b) => {
      //   return b.score - a.score
      // })
      // console.log(res[0]);

      const goodsList = [
        {
          id: '4001172',
          name: '张三',
          price: 289.9,
          count: 2,
          spec: { color: '白色' },
        },
        {
          id: '4001009',
          name: '李四',
          price: 109.8,
          count: 3,
          spec: { size: '40cm*40cm', color: '黑色' },
        },
        {
          id: '4001874',
          name: '老六',
          price: 488,
          count: 1,
          spec: { color: '青色', sum: '一大四小' },
        },
        {
          id: '4001649',
          name: '老六',
          price: 139,
          count: 1,
          spec: { size: '小号', color: '紫色' },
          gift: '50g茶叶,清洗球,宝马, 奔驰',
        },
      ]

      // 封装函数 找到老六这个对象 返回整个对象出来
      const res = goodsList.filter((item) => {
        return item.name == '老六'
      })
      console.log(res)

      // 封装函数 把所有的价格累加
      const sum = goodsList.reduce((prev, item) => {
        return prev + item.price
      }, 0)
      console.log(sum)

      // 数组对象解构出来
      let [
        {
          id,
          name,
          price,
          count,
          spec,
          spec: { size, color },
          gite,
        },
      ] = goodsList

      //  通过构造函数 属性为 (uname，sex，age) 创建出 你们小组的所有人  用数组统计起来 通过年龄筛选小于20的同学
      function People(uname, sex, age) {
        this.uname = uname
        this.sex = sex
        this.age = age
      }
      const num1 = new People('路人甲', '男', 20)
      const num2 = new People('路人乙', '男', 18)
      const num3 = new People('路人丙', '男', 15)
      const num4 = new People('路人丁', '男', 36)
      const arr = [num1, num2, num3, num4]
      console.log(arr)

      const nameage = arr.filter((item) => {
        return item.age < 20
      })
      console.log(nameage)

      let obj = {
        INIT: '预选',
        WAIT_FOR_CONFIRM: '待确认',
        WAIT_FOR_ORDER: '待下单',
        ORDERED: '已下单',
        REMOVED: '已删除',
        RETURNED: '已退货',
      }
      let stutas = 'INIT'
      // 属性也可以是变量呀

      console.log(obj[stutas]) //对象里面可以包含数组

      //  函数封装：返回数组里出现次数最多的数字
      // 调用示例
      MostNumber([1, 2, 2, 1, 3, 1, 1]) // 返回 1

      function MostNumber(arr) {
        let obj = {}
        for (let i = 0; i < arr.length; i++) {
          if (obj[arr[i]]) {
            obj[arr[i]]++
          } else {
            obj[arr[i]] = 1
          }
        }
        console.log(obj)
        let a = 0
        let b = 0
        for (let k in obj) {
          if (a < obj[k]) {
            a = obj[k]
            b = k
          }
        }
        console.log(`出现最多的数字是${b},${a}次`)
      }
      MostNumber([1, 2, 2, 1, 3, 1, 1])

      //  函数作业
      const newObj = [
        { uname: '孙六', age: 39 },
        { uname: '刘七', age: 21 },
        { uname: '刘七', age: 1 },
        { uname: '张三', age: 59 },
        { uname: '李四', age: 29 },
        { uname: '王二', age: 19 },
      ]
      // 前提克隆一份数据
      // 1，把age中个位数为9的替换成*  { uname: '孙六', age: 2* },
      // 2，把张三的这个对象干掉，添加个{uname:'老六',age: 12}
      // 3, 根据年龄排序 过滤到小于18岁的


      const res3=newObj.sort((a, b) => {
        return a.age - b.age
      })
      const res4=res3.filter(item=>{
        return item.age>18
      })
      console.log(res4);

      const objres = JSON.parse(JSON.stringify(newObj))
      const res1 = objres.filter((item) => {
        //  if(item.age%10==9){
        //   item=2+'*'
        //  }
        return item.age % 10 == 9 ? (item.age = 2 + '*') : item.age
      })
      console.log(res1)

       for(let k  in objres){
      if(objres[k].uname=='张三'){
        objres.splice(k,1,{uname:'老六',age: 12})
      }
       }
       console.log(objres);
    </script>
  </body>
</html>
